Originally, color management processing was a relatively straight forward and easy operation where images were scanned by one type of input device and reproduction occurred through one output device. Spot corrections were handled during this one step process. However, with the development of computer technology and associated devices, more devices became available for providing and/or handling color management operations. The single image input device became a number of different scanners, monitors, and digital cameras. The one output device became a number of different printers, monitors, and printing presses. Further, numerous manufacturers began to produce digital still cameras, digital video cameras, scanners, monitors, printers, and printing presses, and these same manufacturers began to produce various models of each device, based on different rendering technologies, that all had different device specific color measurement and/or processing data.
The result is an enormously large number of possible configurations of devices, leading to an equally large number of possible conversions from input devices to output devices. FIG. 1A illustrates an example system of configurations between m input devices and n output devices. As shown, input device 110-1 must be able to convert to each output device 120-1 to 120-n. For all input devices 110 to be able to operate with all output devices 120, each input device 110-1 to 110-m must be able to convert to each output device 120-1 to 120-n. As the number of input devices 110 and/or output devices 120 increases, the number of needed conversions increases in a much faster manner. This explosive increase in conversion paths becomes unmanageable under such a system. Under such a system, ten (10) different inputs and ten (10) different outputs require a total of one hundred (100) different conversions, i.e., m*n conversions.
Under color management technology, the number of conversions drops significantly. FIG. 1B illustrates an example color management conversion system. As shown in FIG. 1B, the color management system includes a profile connection space 130. Under the color management system of FIG. 1B, the profile connection space 130 operates as the conversion mechanism between the input devices 110 and the output devices 120. Conversion information between each input device 110 and each output device 120 is no longer needed. One only needs a single conversion between the input device 110 or output device 120 and the profile connection space 130. The profile connection space 130 will perform processing to connect a particular input device, such as input device 110-2 to a particular output device, such as output device 120-3. Each single conversion describes the color reproduction operations and capabilities of the particular device. This conversion description is commonly referred to as a device color characterization profile. Under such a system, ten (10) different inputs and ten (10) different outputs require a total of twenty (20) different conversions, i.e., m+n conversions.
A profile can be described as a file that contains enough information to let a color management system convert colors into or out of a specific color space. Historically, there are two basic profile solutions for managing color in complex systems. The first uses standard color spaces, such as sRGB and scRGB color spaces. The second uses device color characterization profiles, such as the profile format developed by the International Color Consortium (ICC).
The ICC profile format is a file that contains enough color characteristic information of a device to allow a color management system to maintain color characteristic consistently into or out of a specific color space, such as the color space of a printer. The ICC profile file contains text descriptions of specific devices and their settings along with numeric data describing how to transform the color values which are to be displayed or printed on the device. The numeric data includes matrices and tables that a color management module (CMM) uses to convert that device's color results to a common color space, defined by the ICC and called the profile connection space (PCS), and back to the color space of the device. (Wallner, Dawn; Building ICC Profiles—the Mechanics and Engineering; http://www.color.org/icc-bookl.pdf; April 2000; page 6).
Generally, there are three classes of profiles: an input profile, a display profile and an output profile. An input profile can describe scanner and digital camera based technologies. A display profile can describe monitor and liquid crystal display type technologies. An output profile can describe printer and press technologies. Profiles are generally either matrix-based or table-based. A detailed explanation of each type of profile can be found on pages 100-103 of Fraser et al., Real World Color Management, Peachpit Press, Berkeley, Calif., 2003.
Since inception in 1993, the ICC profile format has been the de facto standard for all profile-based solutions. However, the ICC profile format has many limitations. First, the ICC profile format lacks any type of digital rights management (DRM) capability. Digital media files can be easily copied and distributed. As a result, digital media files are being widely distributed on the Internet today, through both authorized and unauthorized distribution channels. Piracy is a concern when security measures are not in place to protect content. Digital rights management enables content providers to protect their content and maintain control over distribution. Second, the ICC profile format includes a problematic index that requires synchronization. If a corruption of the index of tags of an ICC profile occurs, tags in the ICC profile cannot be found. As a result, time and resources must be spent to rebuild the ICC profile index of tags. Any change to a tag requires synchronization of the index. Third, there is no current free library for reading the ICC profile format. Fourth, the ICC profile format utilizes a standard syntax, but fails to standardize actions and functionality.
Fifth, the ICC profile format lacks interoperability. Any type of support for one platform is different in another platform. The ICC profile lacks eXtensible Markup Language (XML) support for database and metadata integration. Sixth, the ICC profile format lacks transparency. A user has to utilize a specific application to list tags and values, and the ICC profile is not clear as to how tags or values are to be represented or used. Seventh, the ICC profile format includes a copyright tag, but fails to provide any intrinsic system to prevent unauthorized uses or tampering. Eighth, the ICC profile format lacks the ability to provide independent data extensions. A third-party vendor cannot have a private tag associated with a new device from that vendor simply added by extension to an ICC profile. Ninth, edits to an ICC profile require use of a special proprietary editor program of the ICC. Finally, the ICC profile format lacks the ability to contain safe executable code and the ability to store rendering preferences separate from objective measurements. The ICC profile format requires that objective intra-device measurement data be combined with subjective, potentially proprietary inter-device rendering data in a manner that is impossible to deconstruct without access to the original profile creation algorithms. ICC profiles are typically constructed by taking a series of target measurements and then performing a statistical analysis to derive analytical parameters for a particular device model. Such a model might include gamma, offset and gain of a cathode ray tube (CRT) model or uniformly spaced multidimensional lookup table vertices for a printer model. This data concatenation makes it impossible for users to directly edit original measurement data or determine and edit the analytical device model parameters that result from this measurement data.